package com.skyline.user.dao;

import java.util.Date;
import com.skyline.user.model.User;
import com.skyline.user.type.Sex;


/**
 * PersonIalInfoDao
 * 用户个人信息持久化操作
 * 
 * @author Jairus Chan
 * @version 0.1
 */
public interface PersonalInfoDao {
	/**
	 * modifyBasicInfo对个人基本信息进行修改
	 * 
	 * @param name
	 *            用户真实姓名
	 * @param nickName
	 *            用户的昵称
	 * @param birthday
	 *            生日
	 * @param sex
	 *            性别（男，女）
	 * @param province
	 *            省分
	 * @param city
	 *            城市
	 * @param country
	 *            国家
	 * @param job
	 *            职业
	 * @param graduateSchool
	 *            毕业学校
	 * @return void
	 */
	public void updateBasicInfo(Long userid,String name, String nickName, Date birthday,
			Sex sex, String province, String city, String country, String siteId,String job,
			String graduateSchool);

	/**
	 * modifyCommunicationInfo对个人通信信息进行修改，其中用户的email为注册时的email,不可修改
	 * 
	 * @param mobilephone
	 *            手机
	 * @param msn
	 *            msn
	 * @param qq
	 *            qq
	 * @return void
	 */
	public void updateCommunicationInfo(Long userid,String mobilephone, String msn,
			String qq);

	/**
	 * getPersonInfoByUserID通过用户ID来查看用户的个人信息
	 * 
	 * @param userid
	 *            用户ID
	 * @return User 所找到用户
	 */
	public User queryPersonInfoByUserID(Long userid);

	/**
	 * getPersonInfoByEmail通过用户Email来查看用户的个人信息
	 * 
	 * @param email
	 *            用户email
	 * @return User 所找到用户
	 */
	public User queryPersonInfoByEmail(String email);
	/**
	 * queryPersonInfoByIdAndPassword 通过用户id和密码来返回用户
	 * @param userId
	 * @param password
	 * @return
	 */
	public User queryPersonInfoByIdAndPassword(Long userId,String password);
	/**
	 * updatePasswordInfo 更新密码
	 * @param userId
	 * @param password
	 */
	public void updatePasswordInfo(Long userId,String password);
	
	/**
	 * 更新用户头像
	 * @param userId 用户Id
	 * @param portrait 新用户头像
	 * */
	public void updateUserPortrait(Long userId, String portrait);
	
}
